package com.cloudbroker.bcs.platform.ltb.middle.service;

import com.cloudbroker.bcs.common.entity.HSBCPSBackVO;
import com.cloudbroker.bcs.csvc.push.api.vo.request.EnableDisableScheduleVo;
import com.cloudbroker.bcs.csvc.push.api.vo.request.PushReportVo;
import com.cloudbroker.bcs.csvc.push.api.vo.request.UpdateScheduleVo;
import com.cloudbroker.bcs.csvc.push.api.vo.response.PushReportBack;
import com.cloudbroker.bcs.platform.ltb.bizapi.constants.type.UserRemindType;
import com.cloudbroker.bcs.platform.ltb.bizapi.constants.type.XinanPushType;
import com.cloudbroker.bcs.platform.ltb.bizapi.service.admin.back.PushBackVo;
import com.cloudbroker.bcs.platform.ltb.bizapi.service.admin.vo.XinanPushForm;
import com.cloudbroker.bcs.platform.ltb.bizapi.service.push.back.RegisterBackForm;
import com.cloudbroker.bcs.platform.ltb.bizapi.service.push.back.TagsAddBackVo;
import com.cloudbroker.bcs.platform.ltb.bizapi.service.push.back.TagsRemoveBackVo;
import com.cloudbroker.bcs.platform.ltb.bizapi.service.push.vo.NotifyForm;
import com.cloudbroker.bcs.platform.ltb.bizapi.service.push.vo.RegisterForm;
import com.cloudbroker.bcs.platform.ltb.bizapi.service.push.vo.TagsAddForm;
import com.cloudbroker.bcs.platform.ltb.bizapi.service.push.vo.TagsRemoveForm;
import com.cloudbroker.bcs.platform.ltb.middle.entity.PushList;
import com.cloudbroker.bcs.platform.ltb.middle.entityview.PushListParam;

import java.util.List;

/**
 * Created by daibd19671 on 2016/9/8.
 */
public interface PushService {



    /**
     * 获取推送消息列表
     * @return
     */
    public List<PushList> selectPushList(PushListParam pushList);

    Integer countPushList(PushListParam param);

    RegisterBackForm registrationIdMgr(RegisterForm registerForm);

    TagsAddBackVo tagsAdd(TagsAddForm tagsAddForm);

    TagsRemoveBackVo tagsDelete(TagsRemoveForm tagsRemoveForm);

    TagsAddBackVo xinanTagsAdd(TagsAddForm tagsAddForm);
    TagsRemoveBackVo xinanTagsDelete(TagsRemoveForm tagsRemoveForm);

    PushBackVo sendPush(NotifyForm notifyForm);


    PushList getPushList(PushList pushList);

    HSBCPSBackVO ennable_push(EnableDisableScheduleVo enableDisableScheduleVo);

    HSBCPSBackVO disable_push(EnableDisableScheduleVo enableDisableScheduleVo);

    HSBCPSBackVO update_push(UpdateScheduleVo vo);

    void updatePushList(PushList pushList);

    PushReportBack getPushReport(PushReportVo pushReportVo);

    PushBackVo bgsendPush(NotifyForm notifyForm);

    PushBackVo xinanTemplatePush(XinanPushForm xpf);
}
